Lambda を 同期呼び出しした際のステータスコードを変更する方法を教えてください

Lambda を 同期呼び出しした際のステータスコードを変更する方法を教えてください

Clock Icon2023.08.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

Lambda の invoke API で Lambda を呼び出すアプリケーションを開発しています。
アプリケーション側では Lambda から返却されるステータスコードによって処理を分岐させたいのですが、Lambda でエラーが発生してもステータスコードが 200 で返却されます。

Lambda を 同期呼び出しした際のステータスコードを変更する方法を教えてください。

どう対応すればいいの?

payload に StatusCode を含める実装をご検討ください。

Lambda を同期呼び出しした際のステータスコードは、エラーが発生した場合でも 200 が返却される仕様になっています。

Lambda が関数を実行できた場合は、関数がエラーを返したとしても、ステータスコードは 200 です。

AWS 公式ドキュメントより

Lambda のステータスコードを変更したい場合には、payload に独自に StatusCode を含める実装をご検討ください。

// statusCode 403 を返却する例
const response = {
    statusCode: 403,
    body: JSON.stringify('Hello from Lambda!'),
};
return response;

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.